const CompressionPlugin = require("compression-webpack-plugin")
const webpack = require('webpack')
module.exports = {
  // 解决不引用就会报错
  lintOnSave: false,
  publicPath: "./",
  // devServer: {
  // 	proxy: 'http://192.168.1.3:8089/'
  // },
  devServer: {
    proxy: { //开发环境代理，解决跨域问题
      '/manage': { //制定访问项目
        target: "http://192.168.1.3:8089",
        changeOrigin: true,
        logLevel: "debug"
      }
    }
  },
  productionSourceMap: false,
  // chainWebpack: (config) => {
  // 	config.plugin('compressionPlugin').use(new CompressionPlugin({
  // 		test: /\.(js|css|less)$/, // 匹配文件名
  // 		threshold: 10240, // 对超过10k的数据压缩
  // 		minRatio: 0.8,
  // 		deleteOriginalAssets: true // 删除源文件
  // 	}))
  // },
  configureWebpack: {
    externals: {
      // CDN 的 Element 依赖全局变量 Vue， 所以 Vue 也需要使用 CDN 引入
      'vue': 'Vue',
      'vuex': 'Vuex',
      'vue-router': 'VueRouter'
      // 属性名称 element-ui, 表示遇到 import xxx from 'element-ui' 这类引入 'element-ui'的，
      // 不去 node_modules 中找，而是去找 全局变量 ELEMENT
      // 'element-ui': 'ELEMENT'
    },
    plugins: [
      new CompressionPlugin({
        filename: '[file].gz[query]',
        algorithm: 'gzip',
        // test: /\.js$|\.html$|\.json$|\.css/,
        test: /\.js$|\.json$|\.css/,
        threshold: 1024, // 只有大小大于该值的资源会被处理
        minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
        // deleteOriginalAssets: true // 删除原文件
      })
    ],
  },

  chainWebpack: config => {
    // 优化moment 去掉国际化内容
    config
      .plugin('ignore')
      // 忽略/moment/locale下的所有文件
      .use(new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/))
  }
}
